home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / xsearch2-beta.pl < prev   
Perl Script  |  2005-02-12  |  3KB  |  88 lines

  1. #!/usr/bin/perl
  2. #
  3. # Coded by Loni - loni@securityforest.com
  4. # Created:  19/11/2004
  5. # Updated:  26/12/2004 (no changing directory into ExploitTree)
  6. # Updated:  24/01/2005 (added exploit finding feature)
  7. #
  8. # Search Utility for the ExploitTree CVS Repository Tree from SecurityForest.com
  9. # This is a really lame script (only uses bids.txt), but the Real Search Engine is on its way...
  10.  
  11. $ver = "v0.31";
  12. $name = "xsearch.pl";
  13.  
  14. $winexe = "no"; #Only applicable when distributed as an exe with binary unix utilities
  15. if ($winexe eq "yes") { 
  16.     $name = "xsearch.exe"; 
  17.     $dir = $0; $dir =~ s/\\$name//;
  18.     $ENV{'PATH'} = "$dir\\bin;$ENV{'PATH'}";
  19. }
  20.  
  21. &master();
  22.  
  23. sub master {
  24.     print "\nXsearch engine for ExploitTree $ver\n----------------------------------------\n\n";
  25.     print "1\) Search via BID (bid_db)\n"; 
  26.     print "2\) Search via exploit name (bid_db)\n";
  27.     print "3\) Search via keyword (bid_db)\n";
  28.     print "4\) Search via exploit name\\keyword (ExploitTree Itself)\n";
  29.     print "+---------------------------------------\nq\) Quit\n\n> ";
  30.     chomp($choice = <STDIN>);
  31.     if ($choice == 1) { &searchbid(); &master();}
  32.     if ($choice == 2) { &searchname(); &master();}
  33.     if ($choice == 3) { &searchkey(); &master();}
  34.     if ($choice == 4) { &searchnametree(); &master();}
  35.     elsif ($ch_list == "q") { print "Quitting...\n"; exit(1); }    
  36. }
  37.  
  38. sub searchxdetails {
  39.     my ($searchstr) = @_;
  40.     $xdetails=`grep $searchstr bids.txt`; chomp($xdetails);
  41.     @xdetails=split /:/, $xdetails; 
  42.     print "\nBID: $xdetails[1]\n";
  43.     print "Description: $xdetails[2]\n";
  44.     print "Exploit: $xdetails[3]\n";
  45.     &searchxpath($xdetails[3]);
  46. }
  47.  
  48. sub searchxpath {
  49.     my ($exploitstr) = @_;
  50.     if ($exploitstr ne "") {
  51.         print "Searching...\n\n";
  52.         $xpath=`find -iname $exploitstr\*`;
  53.         #should check if the exploit exists more than once...
  54.         #if ($bidtxtsearch == 1) { $xpath=~s/$exploitstr//; }
  55.         $xpath=~s/\//\\/g;     $xpath=~s/\.\\//g;
  56.         print "$xpath\n";
  57.         #chdir $xpath or die "Can't chdir to $xpath:$!\n" if $xpath; - Doesn't work because it is local to the script.
  58.     } else {
  59.         print "Currently, there is no exploit for this bid. If you feel this is an error or are aware of more recent information, please mail us at: exploittree@securityforest.com\n";
  60.     }
  61. }
  62.  
  63. sub searchbid {
  64.     print "BID> "; chomp($choicetext = <STDIN>);
  65.     $searchstr = ":$choicetext:";
  66.     &searchxdetails($searchstr);
  67. }
  68.  
  69. sub searchname {
  70.     print "Exploit Name> "; chomp($choicetext = <STDIN>);
  71.     $searchstr = ":$choicetext";
  72.     &searchxdetails($searchstr);
  73. }
  74.  
  75. sub searchnametree {
  76.     print "Exploit Name\\Keyword> "; chomp($choicetext = <STDIN>);
  77.     $searchstr = "$choicetext";
  78.     &searchxpath($searchstr);
  79. }
  80.  
  81. sub searchkey {
  82.     print "KeyWord> "; chomp($choicetext = <STDIN>);
  83.     system("grep $choicetext bids.txt");
  84. }
  85.  
  86. #EOF
  87.  
  88.